home *** CD-ROM | disk | FTP | other *** search
/ InterCD 2000 September / september_2000.iso / intercd / root / ^Linux / cfengine-1.5.3 / configure.in < prev    next >
Encoding:
Text File  |  1999-10-25  |  13.1 KB  |  465 lines

  1. dnl #############################################################################
  2. dnl #
  3. dnl # Process this file with autoconf then autoheader to build a configure script
  4. dnl #
  5. dnl #############################################################################
  6.  
  7. AC_PREREQ(2.12)
  8.  
  9. AC_INIT(src/cfengine.c)
  10. AC_CONFIG_HEADER(src/conf.h)
  11.  
  12. AC_MSG_WARN("------------------------------------------------")
  13. AC_MSG_WARN(" DFS users should use --enable-DCE")
  14. AC_MSG_WARN(". . . . . . . . . . . . . . . . . . . . . . . . . ")
  15. AC_MSG_WARN("If you are compiling on older pre-POSIX or NT systems")
  16. AC_MSG_WARN("you should get the librx compatibility lib from GNU")
  17. AC_MSG_WARN("------------------------------------------------")
  18.  
  19. AC_CANONICAL_SYSTEM
  20.  
  21. cfversion=`cat $srcdir/version`
  22. AC_SUBST(cfversion)
  23.  
  24. #
  25. # Add to the default list of places in LDFLAGS to compensate for
  26. # ... the configure default value of LIBS on some systems
  27. #
  28. for x in /usr/local/ssl/lib /usr/local/BerkeleyDB/lib /usr/local/gnu/lib \
  29.     /usr/local/gnulib /usr/local/lib 
  30. do
  31.   if test -d "$x"; then
  32.     y=`expr " $LDFLAGS " : ".* -L$x "`
  33.     if test $y -eq 0; then
  34.       LDFLAGS="$LDFLAGS -L$x"
  35.     fi
  36.   fi
  37. done
  38.  
  39. #
  40. # Add to the default list of places in CPPFLAGS to match LDFLAGS above
  41. for x in /usr/local/ssl/include /usr/local/BerkeleyDB/include \
  42.     /usr/local/include /usr/local/gnu/include
  43. do 
  44.   if test -d "$x"; then
  45.     y=`expr " $CPPFLAGS " : ".* -I$x "`
  46.     if test $y -eq 0; then
  47.       CPPFLAGS="$CPPFLAGS -I$x"
  48.     fi
  49.   fi
  50. done
  51.  
  52. dnl ######################################################################
  53. dnl Checks for programs.
  54. dnl ######################################################################
  55.  
  56. AC_PROG_MAKE_SET
  57.  
  58. AC_PROG_CC
  59. ADD_CC_WALL=false    dnl Is this needed?  Let autoconf decide?
  60.  
  61. AC_PROG_LEX
  62. AC_PROG_YACC
  63.  
  64. AC_PROG_RANLIB
  65. AC_PROG_INSTALL
  66.  
  67. AC_PATH_PROG(PERL, perl, /bin/false, \
  68.         $PATH:$prefix/bin:/usr/bin:/usr/local/bin)
  69. AC_PATH_PROG(TEX, tex, /bin/false, \
  70.         $PATH:$prefix/bin:/usr/bin:/usr/local/bin)
  71. AC_PATH_PROG(LATEX, latex, /bin/false, \
  72.         $PATH:$prefix/bin:/usr/bin:/usr/local/bin)
  73. AC_PATH_PROG(TEXINDEX, texindex, /bin/false, \
  74.         $PATH:$prefix/bin:/usr/bin:/usr/local/bin)
  75. AC_PATH_PROG(DVIPS, dvips, /bin/false, \
  76.         $PATH:$prefix/bin:/usr/bin:/usr/local/bin)
  77. AC_PATH_PROG(TEXI2HTML, texi2html, /bin/false, \
  78.         $PATH:$prefix/bin:/usr/bin:/usr/local/bin)
  79. AC_PATH_PROG(MAKEINFO, makeinfo, /bin/false, \
  80.         $PATH:$prefix/bin:/usr/bin:/usr/local/bin)
  81.  
  82. dnl #######################################################################
  83. dnl Determine what documentation to build by looking for builders
  84. dnl #######################################################################
  85.  
  86. AC_CHECK_PROG(DFILE1, tex, "cfengine-Tutorial.dvi", "", \
  87.         $PATH:$prefix/bin:/usr/bin:/usr/local/bin)
  88. AC_CHECK_PROG(DFILE2, tex, "cfengine-Reference.dvi", "", \
  89.         $PATH:$prefix/bin:/usr/bin:/usr/local/bin)
  90. AC_CHECK_PROG(PFILE1, dvips, "cfengine-Tutorial.ps", "", \
  91.         $PATH:$prefix/bin:/usr/bin:/usr/local/bin)
  92. AC_CHECK_PROG(PFILE2, dvips, "cfengine-Reference.ps", "", \
  93.         $PATH:$prefix/bin:/usr/bin:/usr/local/bin)
  94. AC_CHECK_PROG(HFILE1, makeinfo, "cfengine-Tutorial.html", "", \
  95.           $PATH:$prefix/bin:/usr/bin:/usr/local/bin)
  96. AC_CHECK_PROG(HFILE2, makeinfo, "cfengine-Reference.html", "", \
  97.           $PATH:$prefix/bin:/usr/bin:/usr/local/bin)
  98. AC_CHECK_PROG(IFILE1, makeinfo, "cfengine-Tutorial.info", "", \
  99.           $PATH:$prefix/bin:/usr/bin:/usr/local/bin)
  100. AC_CHECK_PROG(IFILE2, makeinfo, "cfengine-Reference.info", "", \
  101.           $PATH:$prefix/bin:/usr/bin:/usr/local/bin)
  102. AC_CHECK_PROG(DFILE3, latex, "paper1.dvi", "", \
  103.         $PATH:$prefix/bin:/usr/bin:/usr/local/bin)
  104. AC_CHECK_PROG(PFILE3, dvips, "paper1.ps", "", \
  105.         $PATH:$prefix/bin:/usr/bin:/usr/local/bin)
  106. AC_CHECK_PROG(DFILE4, latex, "paper2.dvi", "", \
  107.         $PATH:$prefix/bin:/usr/bin:/usr/local/bin)
  108. AC_CHECK_PROG(PFILE4, dvips, "paper2.ps", "", \
  109.         $PATH:$prefix/bin:/usr/bin:/usr/local/bin)
  110. AC_CHECK_PROG(DFILE5, latex, "locks.dvi", "", \
  111.         $PATH:$prefix/bin:/usr/bin:/usr/local/bin)
  112. AC_CHECK_PROG(PFILE5, dvips, "locks.ps", "", \
  113.         $PATH:$prefix/bin:/usr/bin:/usr/local/bin)
  114.  
  115. DDOCS="$DFILE1 $DFILE2 $DFILE3 $DFILE4 $DFILE5"
  116. AC_SUBST(DDOCS)
  117. PDOCS="$PFILE1 $PFILE2 $PFILE3 $PFILE4 $PFILE5"
  118. AC_SUBST(PDOCS)
  119. HDOCS="$HFILE1 $HFILE2"
  120. AC_SUBST(HDOCS)
  121. IDOCS="$IFILE1 $IFILE2"
  122. AC_SUBST(IDOCS)
  123. CFDOCS="$DDOCS $PDOCS $HDOCS $IDOCS"
  124. AC_SUBST(CFDOCS)
  125.  
  126. dnl ######################################################################
  127. dnl Checks for libraries.
  128. dnl ######################################################################
  129.  
  130.  
  131. AC_CHECK_LIB(m,main)
  132.  
  133. AC_CHECK_FUNC(setsockopt, , AC_CHECK_LIB(socket, setsockopt))
  134. AC_CHECK_FUNC(gethostent, , AC_CHECK_LIB(nsl, gethostent))
  135. AC_CHECK_FUNC(db_open,AC_DEFINE(HAVE_DB_OPEN), AC_CHECK_LIB(db, db_open))
  136.  
  137. AC_CHECK_LIB(wrap, main)           dnl TCP wrappers library
  138. AC_CHECK_LIB(rx, main)             dnl GNU posix regex lib if you have regcomp in libc you shouldn't have this
  139. AC_CHECK_LIB(crypto,main)
  140.  
  141.  
  142. dnl ######################################################################
  143. dnl Checks for header files.
  144. dnl ######################################################################
  145.  
  146. AC_CHECK_HEADERS(unistd.h stdlib.h)
  147. AC_CHECK_HEADERS(sys/mount.h)
  148. AC_CHECK_HEADERS(utime.h)
  149. AC_CHECK_HEADERS(time.h)
  150. AC_CHECK_HEADERS(sys/time.h)
  151. AC_CHECK_HEADERS(malloc.h)
  152. AC_CHECK_HEADERS(vfs.h)
  153. AC_CHECK_HEADERS(sys/vfs.h)
  154. AC_CHECK_HEADERS(sys/sockio.h)
  155. AC_CHECK_HEADERS(sys/statvfs.h)
  156. AC_CHECK_HEADERS(sys/statfs.h)
  157. AC_CHECK_HEADERS(sys/param.h)
  158. AC_CHECK_HEADERS(fcntl.h)
  159. AC_CHECK_HEADERS(sys/filesys.h)
  160. AC_CHECK_HEADERS(dustat.h)
  161. AC_CHECK_HEADERS(tcpd.h)
  162. AC_CHECK_HEADERS(db_2.h db.h regex.h rxposix.h)
  163. AC_CHECK_HEADERS(db_185.h)
  164. AC_CHECK_HEADERS(db/db.h)
  165. AC_CHECK_HEADERS(sys/systeminfo.h)
  166. AC_CHECK_HEADERS(sys/acl.h)
  167. AC_CHECK_HEADERS(openssl/des.h)
  168.  
  169. AC_HEADER_STDC
  170. AC_HEADER_TIME
  171. AC_HEADER_SYS_WAIT
  172. AC_HEADER_DIRENT
  173.  
  174.  
  175. dnl ######################################################################
  176. dnl Checks for data types
  177. dnl ######################################################################
  178.  
  179. AC_TYPE_MODE_T
  180. AC_TYPE_SIZE_T
  181. AC_TYPE_UID_T
  182. AC_TYPE_PID_T
  183.  
  184. dnl ######################################################################
  185. dnl Checks for typedefs, structures, and compiler characteristics.
  186. dnl ######################################################################
  187.  
  188. AC_C_CONST
  189.  
  190. dnl ######################################################################
  191. dnl Check for special functions
  192. dnl ######################################################################
  193.  
  194. AC_CHECK_FUNCS(getcwd getnetgrent waitpid seteuid setegid setreuid setregid)
  195. AC_CHECK_FUNCS(uname gethostname realpath regcomp chflags)
  196. AC_CHECK_FUNCS(strstr putenv shmget)
  197. AC_CHECK_FUNCS(bcopy mkfifo statfs statvfs)
  198. AC_CHECK_FUNCS(sysinfo setsid strdup strrchr strerror)
  199.  
  200. dnl #######################################################################
  201. dnl Newer BSD systems don't have a compatible rtentry - use ortentry
  202. dnl #######################################################################
  203.  
  204. rtry=none
  205. AC_MSG_CHECKING(for either struct rtentry or struct ortentry)
  206. AC_EGREP_HEADER(rtentry, net/route.h, AC_DEFINE(HAVE_RTENTRY) rtry=rtentry)
  207. AC_EGREP_HEADER(ortentry, net/route.h, AC_DEFINE(HAVE_ORTENTRY) rtry=ortentry)
  208. AC_MSG_RESULT($rtry)
  209.  
  210. dnl #######################################################################
  211. dnl Handle DCE + threading stuff
  212. dnl #######################################################################
  213.  
  214.  
  215.  
  216. AC_CHECK_LIB(pthread,main)         dnl POSIX threads
  217. AC_CHECK_HEADERS(pthread.h)
  218. AC_CHECK_HEADERS(sched.h)
  219.  
  220. AC_CHECK_FUNC(lchown,AC_DEFINE(HAVE_LCHOWN))
  221. AC_CHECK_FUNC(pthread_attr_setstacksize,AC_DEFINE(HAVE_PTHREAD_ATTR_SETSTACKSIZE),AC_CHECK_LIB(pthread, pthread_create))
  222. AC_CHECK_FUNC(pthread_sigmask,AC_DEFINE(HAVE_PTHREAD_SIGMASK), AC_CHECK_LIB(pthread, pthread_create))
  223.  
  224. AC_ARG_ENABLE(DCE,[  --enable-DCE            support for DCE and ACLs],[
  225.   case "$enableval" in
  226.     no) 
  227.         ;;
  228.     *)
  229.     AC_CHECK_LIB(thread, main) 
  230.     AC_CHECK_LIB(dce, main)            dnl DFS
  231.     AC_CHECK_HEADERS(dce/daclif.h)
  232.     ;;
  233.   esac
  234. ])
  235.  
  236.  
  237. dnl ######################################################################
  238. dnl OS specific stuff
  239. dnl ######################################################################
  240.  
  241. dnl
  242. dnl dsm - To ensure conf.h is picked up via VPATH
  243. dnl
  244. if test "$srcdir" != "."; then
  245.   CPPFLAGS="$CPPFLAGS -I`pwd`/src"
  246. fi
  247.  
  248. dnl
  249. dnl dsm - This case should be in the conf.h.in file.
  250. dnl
  251. case "$target_os" in
  252.  
  253.    sunos3*)
  254.     AC_DEFINE(SUN3)
  255.         ;;
  256.    sunos4*)
  257.     AC_DEFINE(SUN4)
  258.         ;;
  259.    solaris2.4*)
  260.     AC_DEFINE(SOLARIS)
  261.         AC_DEFINE(HAVE_SYS_ACL_H,)
  262.         CPPFLAGS="-w $CPPFLAGS"
  263.         LIBS="$LIBS -lelf"
  264.         ;;
  265.    solaris2.5*)
  266.     AC_DEFINE(SOLARIS)
  267.         AC_DEFINE(_POSIX_C_SOURCE)
  268.         AC_DEFINE(__EXTENSIONS__)
  269.         LIBS="$LIBS -lelf -lsec"
  270.         ;;
  271.    solaris2*)
  272.     AC_DEFINE(SOLARIS)
  273.         AC_DEFINE(__BIT_TYPES_DEFINED__) # avoid conflict with db.h
  274.         AC_DEFINE(_POSIX_C_SOURCE)
  275.         AC_DEFINE(__EXTENSIONS__)
  276.         LIBS="$LIBS -lelf -lsec"
  277.         ;;
  278.    ultrix*)
  279.     AC_DEFINE(ULTRIX)
  280.         ;;
  281.    hpux*|hp-ux*) 
  282.     AC_DEFINE(HPuUX)
  283.  
  284.         if test "$GCC" != "yes"; then
  285.       AC_DEFINE(REGEX_MALLOC)
  286.         fi
  287.         LIBS="$LIBS -lc -lPW"
  288.         ;;
  289.    aix*)
  290.     AC_DEFINE(AIX)
  291.         ;;
  292.    osf*)
  293.     AC_DEFINE(OSF)
  294.         ;;
  295.    irix6*)
  296.         AC_DEFINE(HAVE_ORTENTRY) # Have to hack this for 6.* owing to bug
  297.     AC_DEFINE(IRIX)
  298.         CFLAGS="$CFLAGS -w"
  299.         ;;
  300.    irix4*)
  301.     AC_DEFINE(IRIX)
  302.         CFLAGS="$CFLAGS -w"
  303.         LIBS="$LIBS -lsun"
  304.         ;;
  305.    irix*)
  306.     AC_DEFINE(IRIX)
  307.         CFLAGS="$CFLAGS -w"
  308.         ;;
  309.    linux*)
  310.     AC_DEFINE(LINUX)
  311.         ;;
  312.    freebsd*)
  313.     AC_DEFINE(FREEBSD)
  314.         ;;
  315.    netbsd*)
  316.     AC_DEFINE(NETBSD)
  317.         ;;
  318.    newsos*)
  319.     AC_DEFINE(NEWS_OS)
  320.         ;;
  321.    bsd/os*)
  322.     AC_DEFINE(BSDOS)
  323.         ;;
  324.    bsd*)
  325.     AC_DEFINE(BSD43)
  326.         ;;
  327.    aos*)
  328.     AC_DEFINE(AOS)
  329.         ;;
  330.    nextstep*)
  331.     AC_DEFINE(NEXTSTEP)
  332.         ;;
  333.  
  334.    unicos*)
  335.     AC_DEFINE(CFCRAY)
  336.         ;;
  337.  
  338.    cray*)
  339.     AC_DEFINE(CFCRAY)
  340.         ;;
  341.  
  342.    openbsd*)
  343.     AC_DEFINE(OPENBSD)
  344.         ;;
  345.  
  346.    gnu*)
  347.     AC_DEFINE(CFGNU)
  348.         ;;
  349.  
  350.    sysv4.2MP|unix_sv*)
  351.     AC_DEFINE(UNIXWARE)
  352.         ;;
  353.  
  354.    cygwin32*)
  355.         AC_DEFINE(NT)
  356.         ;;
  357.  
  358.    sco*)
  359.         AC_DEFINE(SCO)
  360.         ;;
  361.  
  362.    *)
  363.     AC_MSG_ERROR(Unknown system type $target_os)
  364.         ;;
  365. esac
  366.  
  367. LIBS="$LIBS -L../pub -lcfpub"
  368.  
  369. dnl #####################################################################
  370. dnl This needed to be configurable, so now it is. -Doug
  371. dnl Fixed up the format - dsm
  372. dnl #####################################################################
  373.  
  374. AC_ARG_WITH(LOCKDIR,
  375.     [  --with-lockdir=LOCKDIR  directory where lockfiles should go ],
  376.     [
  377.         if test x$withval != x ; then
  378.             LOCKDIR=$withval
  379.         else
  380.             if test -d /var/run ; then
  381.                 LOCKDIR=/var/run/cfengine
  382.             else
  383.                 LOCKDIR=/etc/cfengine
  384.             fi
  385.         fi
  386.         AC_DEFINE_UNQUOTED(LOCKFILEDIR, "${LOCKDIR}")
  387.     ],
  388.     [
  389.         if test -d /var/run ; then
  390.             LOCKDIR=/var/run/cfengine
  391.         else
  392.             LOCKDIR=/etc/cfengine
  393.         fi
  394.         AC_DEFINE_UNQUOTED(LOCKFILEDIR, "${LOCKDIR}")
  395.     ]
  396. )
  397.  
  398. AC_ARG_WITH(LOGDIR,
  399.     [  --with-logdir=LOGDIR  directory where logfiles should go ],
  400.     [
  401.         if test x$withval != x ; then
  402.             LOGDIR=$withval
  403.         else
  404.             if test -d /var/run; then
  405.                 LOGDIR=/var/run/cfengine
  406.             else
  407.                 LOGDIR=/etc/cfengine
  408.             fi
  409.         fi
  410.         AC_DEFINE_UNQUOTED(LOGFILEDIR, "${LOGDIR}")
  411.     ],
  412.     [
  413.         if test -d /var/run; then
  414.             LOGDIR=/var/run/cfengine
  415.         else
  416.             LOGDIR=/etc/cfengine
  417.         fi
  418.         AC_DEFINE_UNQUOTED(LOGFILEDIR, "${LOGDIR}")
  419.     ]
  420. )
  421.   
  422. dnl #####################################################################
  423. dnl Fix for lex/flex
  424. dnl #####################################################################
  425.  
  426. AC_MSG_CHECKING("8-bit support in Flex")
  427.  
  428. if test "$LEX" = "flex"; then
  429.    EIGHTBIT="\200-\377"
  430.    AC_SUBST(EIGHTBIT)
  431.    AC_MSG_RESULT("8-bit support added")
  432. else
  433.    AC_MSG_RESULT("no 8-bit support")
  434. fi
  435.   
  436.  
  437.  
  438. dnl #####################################################################
  439. dnl Hostname and Version stuff
  440. dnl #####################################################################
  441.   
  442. AC_PATH_PROG(HOSTNAME, hostname, "", $PATH)
  443.  
  444. dnl #####################################################################
  445. dnl dsm - is this really necessary? mb - yes for ancient 4.3
  446. dnl #####################################################################
  447.  
  448. AC_DEFINE_UNQUOTED(AUTOCONF_HOSTNAME, "`$HOSTNAME`")
  449. AC_DEFINE_UNQUOTED(AUTOCONF_SYSNAME, "$target_os")
  450. AC_DEFINE_UNQUOTED(CFVERSION, "$cfversion")
  451.  
  452. dnl ######################################################################
  453. dnl Now make the Makefiles
  454. dnl ######################################################################
  455.  
  456. AC_OUTPUT(pub/Makefile doc/Makefile src/Makefile bin/Makefile contrib/Makefile \
  457.     inputs/Makefile Makefile bin/cf-install doc/cfengine.8 \
  458.     bin/cfmail bin/cfdaily bin/cfwrap contrib/cfdoc src/cflex.l)
  459.  
  460. chmod 0755 bin/cfmail bin/cfdaily bin/cfwrap 
  461.  
  462. AC_MSG_RESULT("Configuration done. Run make to build cfengine.")
  463.  
  464.